package cn.cjxy.web.servlet.demo1;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * OneServlet创建一个键和值，转发到另一个TwoServlet，从TwoServlet中取出键和值，并且输出。使用转发可以将一个Servlet中的请求转到另一个Servlet中
 * @author huangjie
 * @date 2025/9/26
 */
@WebServlet("/one")
public class OneServlet extends HttpServlet {

    /**
     * 作用域
     *  *
     *  * void setAttribute("键",Object数据)	向请求域中添加键和值
     *  * Object getAttribute("键")	从请求域中获取一个值，返回Object类型
     *  * void removeAttribute("键")	从请求域中删除一个键值对
     *  * @author huangjie
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //往作用域存值
        req.setAttribute("user","jack");
        //转发到另一个TwoServlet
        req.getRequestDispatcher("/two").forward(req,resp);
        /*
        RequestDispatcher中的方法
        ● forward(ServletRequest request, ServletResponse Response)：将请求跳转到分发器指定的地方；
        ● include(ServletRequest request, ServletResponse Response)：收集分发器指定的请求的响应结果；
         */
    }
}
